[INFO] cloning repository https://github.com/atomicincrement/stable-diffusion-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/atomicincrement/stable-diffusion-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fatomicincrement%2Fstable-diffusion-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fatomicincrement%2Fstable-diffusion-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1d9f8125f0c015f15afda06123837720a73a9359
[INFO] checking atomicincrement/stable-diffusion-rs against master#4eb62535fc12dd1a63fd43a4173e224e79313c4d for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fatomicincrement%2Fstable-diffusion-rs" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/atomicincrement/stable-diffusion-rs
[INFO] finished tweaking git repo https://github.com/atomicincrement/stable-diffusion-rs
[INFO] tweaked toml for git repo https://github.com/atomicincrement/stable-diffusion-rs written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/atomicincrement/stable-diffusion-rs on toolchain 4eb62535fc12dd1a63fd43a4173e224e79313c4d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/atomicincrement/stable-diffusion-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cblas-sys v0.1.4
[INFO] [stderr]   Downloaded lax v0.16.0
[INFO] [stderr]   Downloaded ndarray-linalg v0.16.0
[INFO] [stderr]   Downloaded cauchy v0.4.0
[INFO] [stderr]   Downloaded cached-path v0.6.2
[INFO] [stderr]   Downloaded katexit v0.1.5
[INFO] [stderr]   Downloaded lapack-sys v0.14.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93
[INFO] running `Command { std: "docker" "start" "98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling openssl v0.10.78
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking console v0.16.3
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking xattr v1.6.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]     Checking approx v0.4.0
[INFO] [stderr]     Checking password-hash v0.4.2
[INFO] [stderr]     Checking filetime v0.2.27
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking cblas-sys v0.1.4
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking tar v0.4.45
[INFO] [stderr]     Checking itertools v0.8.2
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking lapack-sys v0.14.0
[INFO] [stderr]     Checking number_prefix v0.3.0
[INFO] [stderr]    Compiling macro_rules_attribute-proc_macro v0.1.3
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking itertools v0.9.0
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking noisy_float v0.2.1
[INFO] [stderr]     Checking macro_rules_attribute v0.1.3
[INFO] [stderr]     Checking aho-corasick v0.7.20
[INFO] [stderr]     Checking unicode-normalization-alignments v0.1.12
[INFO] [stderr]     Checking regex-syntax v0.7.5
[INFO] [stderr]     Checking shellexpand v3.1.2
[INFO] [stderr]    Compiling openssl-sys v0.9.114
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling onig_sys v69.9.3
[INFO] [stderr]    Compiling esaxx-rs v0.1.10
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking indicatif v0.16.2
[INFO] [stderr]     Checking indicatif v0.15.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking rayon-cond v0.1.0
[INFO] [stderr]     Checking bzip2 v0.4.4
[INFO] [stderr]     Checking onig v6.5.3
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]    Compiling darling_core v0.14.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling katexit v0.1.5
[INFO] [stderr]    Compiling monostate-impl v0.1.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking monostate v0.1.18
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking tokio v1.52.1
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]     Checking zerocopy v0.8.48
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stderr]    Compiling derive_builder_core v0.12.0
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]    Compiling derive_builder_macro v0.12.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking spm_precompiled v0.1.4
[INFO] [stderr]     Checking safetensors v0.4.5
[INFO] [stderr]     Checking derive_builder v0.12.0
[INFO] [stderr]     Checking zip v0.6.6
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking cauchy v0.4.0
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking lax v0.16.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking ndarray-stats v0.5.1
[INFO] [stderr]     Checking ndarray-linalg v0.16.0
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking cached-path v0.6.2
[INFO] [stderr]     Checking tokenizers v0.13.4
[INFO] [stderr]     Checking stable-diffusion-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Array`
[INFO] [stdout]  --> examples/mmap_arrayview.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ndarray::{ArrayView, Array, IxDyn, s};
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_start`
[INFO] [stdout]   --> examples/mmap_arrayview.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let data_start = 8 + header_size;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_start`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TensorF32` and `WeightMatrix`
[INFO] [stdout]  --> src/weights.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{TensorF32, WeightMatrix};
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array`
[INFO] [stdout]  --> src/weights.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CLIP_MLP_EXPANSION`
[INFO] [stdout]  --> src/clip.rs:3:91
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::{CLIP_EMBEDDING_DIM, MAX_TOKEN_LENGTH, CLIP_NUM_LAYERS, CLIP_NUM_HEADS, CLIP_MLP_EXPANSION, TOKEN_VOCAB_SIZE};
[INFO] [stdout]   |                                                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]  --> src/clip.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array1, Array2, Axis, s};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::LATENT_CHANNELS`
[INFO] [stdout]  --> src/diffusion.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::LATENT_CHANNELS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/diffusion.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ndarray::{Array1, Array2, Array4, Array3};
[INFO] [stdout]   |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_chacha::ChaCha8Rng`
[INFO] [stdout]  --> src/diffusion.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand_chacha::ChaCha8Rng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]  --> src/diffusion.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::SeedableRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_distr::Normal`
[INFO] [stdout]   --> src/diffusion.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand_distr::Normal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LATENT_CHANNELS`, `LATENT_HEIGHT`, `LATENT_WIDTH`, `OUTPUT_CHANNELS`, `OUTPUT_HEIGHT`, `OUTPUT_WIDTH`, and `TensorF32`
[INFO] [stdout]  --> src/vae.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::{TensorF32, LATENT_CHANNELS, LATENT_HEIGHT, LATENT_WIDTH, OUTPUT_CHANNELS, OUTPUT_HEIGHT, OUTPUT_WIDTH};
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array` and `IxDyn`
[INFO] [stdout]  --> src/utils.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, IxDyn};
[INFO] [stdout]   |               ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2` and `Axis`
[INFO] [stdout]  --> src/conv_ops.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array4, Array2, Array1, s, Axis};
[INFO] [stdout]   |                       ^^^^^^             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TensorF32` and `WeightMatrix`
[INFO] [stdout]  --> src/weights.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{TensorF32, WeightMatrix};
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::Array`
[INFO] [stdout]  --> src/weights.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ndarray::Array;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CLIP_MLP_EXPANSION`
[INFO] [stdout]  --> src/clip.rs:3:91
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::{CLIP_EMBEDDING_DIM, MAX_TOKEN_LENGTH, CLIP_NUM_LAYERS, CLIP_NUM_HEADS, CLIP_MLP_EXPANSION, TOKEN_VOCAB_SIZE};
[INFO] [stdout]   |                                                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]  --> src/clip.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array1, Array2, Axis, s};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::LATENT_CHANNELS`
[INFO] [stdout]  --> src/diffusion.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::LATENT_CHANNELS;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Array3`
[INFO] [stdout]  --> src/diffusion.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ndarray::{Array1, Array2, Array4, Array3};
[INFO] [stdout]   |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_chacha::ChaCha8Rng`
[INFO] [stdout]  --> src/diffusion.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand_chacha::ChaCha8Rng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]  --> src/diffusion.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::SeedableRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_distr::Normal`
[INFO] [stdout]   --> src/diffusion.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand_distr::Normal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LATENT_CHANNELS`, `LATENT_HEIGHT`, `LATENT_WIDTH`, `OUTPUT_CHANNELS`, `OUTPUT_HEIGHT`, `OUTPUT_WIDTH`, and `TensorF32`
[INFO] [stdout]  --> src/vae.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::{TensorF32, LATENT_CHANNELS, LATENT_HEIGHT, LATENT_WIDTH, OUTPUT_CHANNELS, OUTPUT_HEIGHT, OUTPUT_WIDTH};
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array` and `IxDyn`
[INFO] [stdout]  --> src/utils.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::{Array, IxDyn};
[INFO] [stdout]   |               ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2` and `Axis`
[INFO] [stdout]  --> src/conv_ops.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array4, Array2, Array1, s, Axis};
[INFO] [stdout]   |                       ^^^^^^             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::Distribution`
[INFO] [stdout]   --> src/diffusion.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rand::distributions::Distribution;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::Distribution`
[INFO] [stdout]   --> src/diffusion.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rand::distributions::Distribution;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `valid_count` is assigned to, but never used
[INFO] [stdout]    --> src/weights.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |     let mut valid_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_valid_count` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `valid_count` is never read
[INFO] [stdout]    --> src/weights.rs:468:21
[INFO] [stdout]     |
[INFO] [stdout] 468 |                     valid_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `valid_count` is assigned to, but never used
[INFO] [stdout]    --> src/weights.rs:511:9
[INFO] [stdout]     |
[INFO] [stdout] 511 |     let mut valid_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_valid_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `valid_count` is never read
[INFO] [stdout]    --> src/weights.rs:518:21
[INFO] [stdout]     |
[INFO] [stdout] 518 |                     valid_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `valid_count` is assigned to, but never used
[INFO] [stdout]    --> src/weights.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |     let mut valid_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_valid_count` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `valid_count` is never read
[INFO] [stdout]    --> src/weights.rs:468:21
[INFO] [stdout]     |
[INFO] [stdout] 468 |                     valid_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `valid_count` is assigned to, but never used
[INFO] [stdout]    --> src/weights.rs:511:9
[INFO] [stdout]     |
[INFO] [stdout] 511 |     let mut valid_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_valid_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `valid_count` is never read
[INFO] [stdout]    --> src/weights.rs:518:21
[INFO] [stdout]     |
[INFO] [stdout] 518 |                     valid_count += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_ch`
[INFO] [stdout]    --> src/diffusion.rs:585:17
[INFO] [stdout]     |
[INFO] [stdout] 585 |             let in_ch = if block_idx == 0 { 320 } else { block_channels[block_idx - 1] };
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_in_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latent`
[INFO] [stdout]   --> src/vae.rs:25:26
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn decode(&self, latent: Array4<f32>) -> Result<Array4<f32>, String> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_latent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axis`
[INFO] [stdout]   --> src/utils.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn softmax(x: &TensorF32, axis: ndarray::Axis) -> TensorF32 {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_axis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gamma`
[INFO] [stdout]   --> src/utils.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     gamma: &TensorF32,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_gamma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `beta`
[INFO] [stdout]   --> src/utils.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     beta: &TensorF32,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_beta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eps`
[INFO] [stdout]   --> src/utils.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     eps: f32,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_eps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/utils.rs:34:31
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn mat_mul(a: &TensorF32, b: &TensorF32) -> TensorF32 {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tensor`
[INFO] [stdout]   --> src/utils.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn tensor_to_image_uint8(tensor: &TensorF32) -> Vec<u8> {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tensor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape`
[INFO] [stdout]   --> src/utils.rs:46:14
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn randn(shape: &[usize]) -> TensorF32 {
[INFO] [stdout]    |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_shape`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gamma`
[INFO] [stdout]   --> src/conv_ops.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     gamma: Option<&Array1<f32>>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_gamma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `beta`
[INFO] [stdout]   --> src/conv_ops.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     beta: Option<&Array1<f32>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_beta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `in_ch`
[INFO] [stdout]    --> src/diffusion.rs:585:17
[INFO] [stdout]     |
[INFO] [stdout] 585 |             let in_ch = if block_idx == 0 { 320 } else { block_channels[block_idx - 1] };
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_in_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `latent`
[INFO] [stdout]   --> src/vae.rs:25:26
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn decode(&self, latent: Array4<f32>) -> Result<Array4<f32>, String> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_latent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axis`
[INFO] [stdout]   --> src/utils.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn softmax(x: &TensorF32, axis: ndarray::Axis) -> TensorF32 {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_axis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gamma`
[INFO] [stdout]   --> src/utils.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     gamma: &TensorF32,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_gamma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `beta`
[INFO] [stdout]   --> src/utils.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     beta: &TensorF32,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_beta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eps`
[INFO] [stdout]   --> src/utils.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     eps: f32,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_eps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/utils.rs:34:31
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn mat_mul(a: &TensorF32, b: &TensorF32) -> TensorF32 {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tensor`
[INFO] [stdout]   --> src/utils.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn tensor_to_image_uint8(tensor: &TensorF32) -> Vec<u8> {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tensor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape`
[INFO] [stdout]   --> src/utils.rs:46:14
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn randn(shape: &[usize]) -> TensorF32 {
[INFO] [stdout]    |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_shape`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gamma`
[INFO] [stdout]   --> src/conv_ops.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     gamma: Option<&Array1<f32>>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_gamma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `beta`
[INFO] [stdout]   --> src/conv_ops.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     beta: Option<&Array1<f32>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_beta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_weights`, `unet_weights`, and `vae_weights` are never read
[INFO] [stdout]   --> src/weights.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct WeightStore {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 13 |     /// CLIP text encoder weights
[INFO] [stdout] 14 |     pub clip_weights: ClipWeights,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 15 |     /// UNet denoiser weights
[INFO] [stdout] 16 |     pub unet_weights: UNetWeights,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 17 |     /// VAE decoder weights
[INFO] [stdout] 18 |     pub vae_weights: VaeWeights,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sqrt_alphas_cumprod` is never read
[INFO] [stdout]   --> src/diffusion.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct NoiseSchedule {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub sqrt_alphas_cumprod: Array1<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `scaled_linear` and `get_scaled_noise` are never used
[INFO] [stdout]    --> src/diffusion.rs:48:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl NoiseSchedule {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn scaled_linear(num_steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn get_scaled_noise(&self, t: usize) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `embeddings` is never read
[INFO] [stdout]    --> src/diffusion.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct TimestepEmbedding {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 129 |     /// Pre-computed sinusoidal embeddings for 1000 timesteps
[INFO] [stdout] 130 |     embeddings: Array2<f32>, // (1000, embedding_dim)
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/diffusion.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl TimestepEmbedding {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get(&self, timestep: usize) -> Array1<f32> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_channels` and `out_channels` are never read
[INFO] [stdout]    --> src/diffusion.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct ResidualBlock {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub in_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 173 |     pub out_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `forward` is never used
[INFO] [stdout]    --> src/diffusion.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ResidualBlock {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn forward(&self, x: &Array4<f32>, _time_emb: &Array1<f32>) -> Array4<f32> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `query_dim`, `context_dim`, and `num_heads` are never read
[INFO] [stdout]    --> src/diffusion.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub struct CrossAttentionBlock {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 202 |     pub query_dim: usize,        // Dimension of noisy latent features
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 203 |     pub context_dim: usize,      // Dimension of text embeddings (1280 after projection)
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 204 |     pub num_heads: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `forward` is never used
[INFO] [stdout]    --> src/diffusion.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl CrossAttentionBlock {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn forward(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_embedding`, `input_channels`, `hidden_channels`, `residual_blocks`, `attention_blocks`, and `output_channels` are never read
[INFO] [stdout]    --> src/diffusion.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct UNetDenoiser {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 236 |     /// Timestep embedding module
[INFO] [stdout] 237 |     pub time_embedding: TimestepEmbedding,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub input_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 241 |     pub hidden_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub residual_blocks: Vec<ResidualBlock>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub attention_blocks: Vec<CrossAttentionBlock>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub output_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_scaled_linear_schedule` are never used
[INFO] [stdout]    --> src/diffusion.rs:737:12
[INFO] [stdout]     |
[INFO] [stdout] 735 | impl DiffusionPipeline {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] 736 |     /// Create a new diffusion pipeline with linear noise schedule
[INFO] [stdout] 737 |     pub fn new(unet_path: &str) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 760 |     pub fn with_scaled_linear_schedule(unet_path: &str) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gelu` is never used
[INFO] [stdout]  --> src/utils.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn gelu(x: &TensorF32) -> TensorF32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax` is never used
[INFO] [stdout]   --> src/utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn softmax(x: &TensorF32, axis: ndarray::Axis) -> TensorF32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `layer_norm` is never used
[INFO] [stdout]   --> src/utils.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn layer_norm(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mat_mul` is never used
[INFO] [stdout]   --> src/utils.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn mat_mul(a: &TensorF32, b: &TensorF32) -> TensorF32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tensor_to_image_uint8` is never used
[INFO] [stdout]   --> src/utils.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn tensor_to_image_uint8(tensor: &TensorF32) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randn` is never used
[INFO] [stdout]   --> src/utils.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn randn(shape: &[usize]) -> TensorF32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WeightMatrix` is never used
[INFO] [stdout]   --> src/types.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type WeightMatrix<'a> = ArrayView<'a, f32, IxDyn>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TensorBf16` is never used
[INFO] [stdout]   --> src/types.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type TensorBf16 = Array<f32, IxDyn>;
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TensorF32` is never used
[INFO] [stdout]   --> src/types.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type TensorF32 = Array<f32, IxDyn>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLIP_MLP_EXPANSION` is never used
[INFO] [stdout]   --> src/types.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const CLIP_MLP_EXPANSION: usize = 4;  // 768 → 3072 → 768
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFUSION_STEPS` is never used
[INFO] [stdout]   --> src/types.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const DIFFUSION_STEPS: usize = 1000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATENT_HEIGHT` is never used
[INFO] [stdout]   --> src/types.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const LATENT_HEIGHT: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATENT_WIDTH` is never used
[INFO] [stdout]   --> src/types.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const LATENT_WIDTH: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATENT_CHANNELS` is never used
[INFO] [stdout]   --> src/types.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const LATENT_CHANNELS: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_HEIGHT` is never used
[INFO] [stdout]   --> src/types.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub const OUTPUT_HEIGHT: usize = 512;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_WIDTH` is never used
[INFO] [stdout]   --> src/types.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub const OUTPUT_WIDTH: usize = 512;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_CHANNELS` is never used
[INFO] [stdout]   --> src/types.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const OUTPUT_CHANNELS: usize = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_norm` is never used
[INFO] [stdout]   --> src/conv_ops.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn group_norm(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv2d_fast` is never used
[INFO] [stdout]    --> src/conv_ops.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn conv2d_fast(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_skip_connection` is never used
[INFO] [stdout]    --> src/conv_ops.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub fn add_skip_connection(x: &Array4<f32>, skip: &Array4<f32>) -> Array4<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `clip_weights`, `unet_weights`, and `vae_weights` are never read
[INFO] [stdout]   --> src/weights.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct WeightStore {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 13 |     /// CLIP text encoder weights
[INFO] [stdout] 14 |     pub clip_weights: ClipWeights,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 15 |     /// UNet denoiser weights
[INFO] [stdout] 16 |     pub unet_weights: UNetWeights,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 17 |     /// VAE decoder weights
[INFO] [stdout] 18 |     pub vae_weights: VaeWeights,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sqrt_alphas_cumprod` is never read
[INFO] [stdout]   --> src/diffusion.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct NoiseSchedule {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub sqrt_alphas_cumprod: Array1<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `scaled_linear` and `get_scaled_noise` are never used
[INFO] [stdout]    --> src/diffusion.rs:48:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl NoiseSchedule {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn scaled_linear(num_steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn get_scaled_noise(&self, t: usize) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `embeddings` is never read
[INFO] [stdout]    --> src/diffusion.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct TimestepEmbedding {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 129 |     /// Pre-computed sinusoidal embeddings for 1000 timesteps
[INFO] [stdout] 130 |     embeddings: Array2<f32>, // (1000, embedding_dim)
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/diffusion.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl TimestepEmbedding {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get(&self, timestep: usize) -> Array1<f32> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_channels` and `out_channels` are never read
[INFO] [stdout]    --> src/diffusion.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct ResidualBlock {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub in_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 173 |     pub out_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `forward` is never used
[INFO] [stdout]    --> src/diffusion.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ResidualBlock {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn forward(&self, x: &Array4<f32>, _time_emb: &Array1<f32>) -> Array4<f32> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `query_dim`, `context_dim`, and `num_heads` are never read
[INFO] [stdout]    --> src/diffusion.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub struct CrossAttentionBlock {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 202 |     pub query_dim: usize,        // Dimension of noisy latent features
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 203 |     pub context_dim: usize,      // Dimension of text embeddings (1280 after projection)
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 204 |     pub num_heads: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `forward` is never used
[INFO] [stdout]    --> src/diffusion.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl CrossAttentionBlock {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn forward(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_embedding`, `input_channels`, `hidden_channels`, `residual_blocks`, `attention_blocks`, and `output_channels` are never read
[INFO] [stdout]    --> src/diffusion.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct UNetDenoiser {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 236 |     /// Timestep embedding module
[INFO] [stdout] 237 |     pub time_embedding: TimestepEmbedding,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub input_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 241 |     pub hidden_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub residual_blocks: Vec<ResidualBlock>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub attention_blocks: Vec<CrossAttentionBlock>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub output_channels: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `with_scaled_linear_schedule` are never used
[INFO] [stdout]    --> src/diffusion.rs:737:12
[INFO] [stdout]     |
[INFO] [stdout] 735 | impl DiffusionPipeline {
[INFO] [stdout]     | ---------------------- associated functions in this implementation
[INFO] [stdout] 736 |     /// Create a new diffusion pipeline with linear noise schedule
[INFO] [stdout] 737 |     pub fn new(unet_path: &str) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 760 |     pub fn with_scaled_linear_schedule(unet_path: &str) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gelu` is never used
[INFO] [stdout]  --> src/utils.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn gelu(x: &TensorF32) -> TensorF32 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax` is never used
[INFO] [stdout]   --> src/utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn softmax(x: &TensorF32, axis: ndarray::Axis) -> TensorF32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `layer_norm` is never used
[INFO] [stdout]   --> src/utils.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn layer_norm(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mat_mul` is never used
[INFO] [stdout]   --> src/utils.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn mat_mul(a: &TensorF32, b: &TensorF32) -> TensorF32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tensor_to_image_uint8` is never used
[INFO] [stdout]   --> src/utils.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn tensor_to_image_uint8(tensor: &TensorF32) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randn` is never used
[INFO] [stdout]   --> src/utils.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn randn(shape: &[usize]) -> TensorF32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WeightMatrix` is never used
[INFO] [stdout]   --> src/types.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type WeightMatrix<'a> = ArrayView<'a, f32, IxDyn>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TensorBf16` is never used
[INFO] [stdout]   --> src/types.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type TensorBf16 = Array<f32, IxDyn>;
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TensorF32` is never used
[INFO] [stdout]   --> src/types.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type TensorF32 = Array<f32, IxDyn>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLIP_MLP_EXPANSION` is never used
[INFO] [stdout]   --> src/types.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const CLIP_MLP_EXPANSION: usize = 4;  // 768 → 3072 → 768
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFFUSION_STEPS` is never used
[INFO] [stdout]   --> src/types.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const DIFFUSION_STEPS: usize = 1000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATENT_HEIGHT` is never used
[INFO] [stdout]   --> src/types.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const LATENT_HEIGHT: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATENT_WIDTH` is never used
[INFO] [stdout]   --> src/types.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const LATENT_WIDTH: usize = 64;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATENT_CHANNELS` is never used
[INFO] [stdout]   --> src/types.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const LATENT_CHANNELS: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_HEIGHT` is never used
[INFO] [stdout]   --> src/types.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub const OUTPUT_HEIGHT: usize = 512;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_WIDTH` is never used
[INFO] [stdout]   --> src/types.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub const OUTPUT_WIDTH: usize = 512;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_CHANNELS` is never used
[INFO] [stdout]   --> src/types.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const OUTPUT_CHANNELS: usize = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_norm` is never used
[INFO] [stdout]   --> src/conv_ops.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn group_norm(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv2d_fast` is never used
[INFO] [stdout]    --> src/conv_ops.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub fn conv2d_fast(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_skip_connection` is never used
[INFO] [stdout]    --> src/conv_ops.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub fn add_skip_connection(x: &Array4<f32>, skip: &Array4<f32>) -> Array4<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.82s
[INFO] running `Command { std: "docker" "inspect" "98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93", kill_on_drop: false }`
[INFO] [stdout] 98cd0a24f8ab6b3fa728e00a72d25b12f50274ac1eacedced9669d7593ef0c93
